function setItem(name, item) {
  localStorage.setItem(name, JSON.stringify(item));
}

function getItem(name) {
  return JSON.parse(localStorage.getItem(name) || '[]');
}

const state = {
  car: getItem('car'),
  buy: getItem('buy') || [] // 初始化 buy 状态
};

const getters = {
  // 获取商品数量
  getGoodsCount(state) {
    var goods = {};
    state.car.forEach(item => {
      goods[item.id] = item.count;
    });
    return goods;
  },
  // 获取商品有没有选中的状态值（selected）
  getGoodsSelected(state) {
    var goods = {};
    state.car.forEach(item => {
      goods[item.id] = item.selected;
    });
    return goods;
  },
  // 获取选中的商品的件数
  getSelectedCount(state) {
    var count = 0;
    state.car.forEach(item => {
      if (item.selected) {
        count += item.count; // 累加选中商品的数量
      }
    });
    return count; // 返回选中商品的总件数
  },
  // 获取选中的商品
  getSelectedGoods(state) {
    var goods = {};
    state.car.forEach(item => {
      if (item.selected) {
        goods[item.id] = item; // 将选中的商品添加到 goods 对象中
      }
    });
    return goods; // 返回选中的商品
  },
  // 获取要购买的商品
  getBuy(state) {
    var goods = {};
    state.buy.forEach(item => {
      goods[item.id] = item;
    });
    return goods;
  },
  // 计算订单总额
  getTotalAmount(state) {
    let total = 0;
    state.buy.forEach(item => {
      total += item.price * item.count; // 单价乘以数量，并累加
    });
    return total; // 返回订单总额
  }
};

const actions = {};

const mutations = {
  // 添加商品到购物车
  addCar(state, goodsinfo) {
    var flag = false;
    state.car.some(item => {
      if (item.id == goodsinfo.id) {
        item.count += parseInt(goodsinfo.count);
        flag = true;
        return true;
      }
    });
    if (!flag) {
      state.car.push(goodsinfo);
    }
    setItem('car', state.car);
  },
  // 更新商品信息
  updateGoodsInfo(state, goodsinfo) {
    state.car.some(item => {
      if (item.id == goodsinfo.id) {
        item.count = parseInt(goodsinfo.count); // 更新商品数量
        return true;
      }
    });
    setItem('car', state.car); // 更新 localStorage
  },
  // 更新商品选中状态
  updateGoodsSelected(state, info) {
    state.car.some(item => {
      if (item.id == info.id) {
        item.selected = info.selected; // 更新商品选中状态
        return true;
      }
    });
    setItem('car', state.car); // 更新 localStorage
  },
  // 从购物车中删除商品
  removeCar(state, id) {
    state.car.some((item, i) => {
      if (item.id == id) {
        state.car.splice(i, 1); // 从购物车中删除商品
        return true;
      }
    });
    setItem('car', state.car); // 更新 localStorage
  },
  // 设置要购买的商品
  setBuy(state) {
    state.buy = []; // 清空 buy 状态
    state.car.some(item => {
      if (item.selected) {
        state.buy.push(item); // 将选中的商品添加到 buy 状态中
      }
    });
    setItem('buy', state.buy); // 更新 localStorage
  }
};

export default {
  namespaced: true,
  state,
  getters,
  actions,
  mutations
};